package com.maktoub.project.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.maktoub.apiclientstart.client.ApiInterfaceClient;
import com.maktoub.common.model.entity.InterfaceInfo;
import com.maktoub.common.model.entity.User;
import com.maktoub.common.model.entity.UserInterfaceInfo;
import com.maktoub.project.common.BaseResponse;
import com.maktoub.project.model.dto.UserInterfaceInfo.UserInterfaceInfoQueryRequest;
import com.maktoub.project.model.vo.UserInterfaceInfoExcludedVO;
import com.maktoub.project.model.vo.UserInterfaceInfoVO;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
* @author Maktoub
* @description 针对表【user_interface_info(用户接口调用)】的数据库操作Service
* @createDate 2024-05-16 19:11:10
*/
public interface UserInterfaceInfoService extends IService<UserInterfaceInfo> {
    void validUserInterfaceInfo(UserInterfaceInfo post, boolean add);
    BaseResponse<Object> requestGatewayWithSDK(User loginUser, ApiInterfaceClient apiInterfaceClient,
                                               InterfaceInfo interfaceInfo,  Map<String, Object> requestParams);

    List<UserInterfaceInfoVO> getByUserId(UserInterfaceInfoQueryRequest userInterfaceInfoQueryRequest);


    Page<UserInterfaceInfoExcludedVO> getByExcluedUserId(UserInterfaceInfoQueryRequest userInterfaceInfoQueryRequest,
                                                         HttpServletRequest request);
}
